package study.仪器解析.串口化通信.生化仪;

import jssc.SerialPort;
import jssc.SerialPortException;

/**
 * @Author 刘伟涛
 * @Date 2024/8/7 13:49
 **/
public class TestParse {
    public static void main(String[] args) {
        // 指定串口名称，如 COM1, COM2, /dev/ttyUSB0
        String portName = "COM2";
        SerialPort serialPort = new SerialPort(portName);

        try {
            // 打开串口
            serialPort.openPort();

            // 设置串口参数
            serialPort.setParams(
                    SerialPort.BAUDRATE_9600,
                    SerialPort.DATABITS_8,
                    SerialPort.STOPBITS_1,
                    SerialPort.PARITY_NONE
            );

            // 发送数据 16进制查询码
            // 检测结果样例
            String dataToSend = "\u00021H|\\^&|||1|||||2||1|20240823162037\r\u000312\r\n" +
                    "\u00022P|4|||||||男||||||^Y\r\u000312\r\n" +
                    "\u00023O|1|KN2412470^4^1^4|||R|20240826154624|||||||||1||||||||||O\r\u000312\r\n" +
                    "\u00024R|1|^^^ALT|5.47|U/L|0^50\\^|||F||||20240826154624\r\u000312\r\n" +
                    "\u00025L|1|N\r\u000312\r\n" +
                    "\u0004";
            // 质控数据样例
            String dataToSend2 = "\u00021H|\\^&|||1|||||2||1|20240827164512\r\u000312\r\n" +
                    "\u00022P|1||||QC|||||||||^\r\u000312\r\n" +
                    "\u00023O|1|^0^1^C1^|伯乐生化多项质控品^45981(20240801)^|||20240826153351|||||||||1||||||||||O\r\u000312\r\n" +
                    "\u00024R|1|^^^ALT|31.02|U/L|31.3^0.81||-1SD|||||20240826153351\r\u000312\r\n" +
                    "\u00025L|1|N\r\u000312\r\n" +
                    "\u0004";
            // 申请样本数据
            String dataToSend3 = "\u00021H|\\^&|||1|||||2||1|20240827163552\r\u000312\r\n" +
                    "\u00022Q|1|2^^1^1^N||ALL||||||||O\r\u000312\r\n" +
                    "\u00023L|1|N\r\u000312\r\n" +
                    "\u0004";
            serialPort.writeString(dataToSend2);
            // 串口bidirectionalCommunication
            // 读取响应
            Thread.sleep(100);
            String response = serialPort.readString();
            System.out.println("Received response: " + response.trim());

            // 关闭串口
            serialPort.closePort();

        } catch (SerialPortException | InterruptedException ex) {
            System.out.println("Error in communication: " + ex);
        }
    }
}
